#!/bin/bash

# 定义常量
ACCESS_TOKEN="xxxx"     # 替换为你的 Gitcode Access Token
ORG_NAME="xxxx"         # 替换为你的 Gitcode 组织名

# 遍历当前目录下的所有 Git 仓库
for dir in */; do
    # 检查是否是 Git 仓库
    if [ -d "$dir/.git" ]; then
        # 获取仓库名（目录名）
        REPO_NAME=$(basename "$dir")

        echo "开始处理仓库：$REPO_NAME"

        # Step 1: 在 Gitcode 上创建同名仓库
        CREATE_REPO_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" \
            -X POST "https://api.gitcode.com/api/v5/orgs/$ORG_NAME/repos?access_token=$ACCESS_TOKEN" \
            -H "Content-Type: application/json" \
            -d '{
                "name": "'"$REPO_NAME"'",
                "description": "'"$REPO_NAME (created by script)"'",
                "private": true
            }')

        echo "仓库 $REPO_NAME 创建成功:$CREATE_REPO_RESPONSE"

        # if [ "$CREATE_REPO_RESPONSE" -eq 201 ]; then
        #     echo "仓库 $REPO_NAME 创建成功"
        # elif [ "$CREATE_REPO_RESPONSE" -eq 422 ]; then
        #     echo "仓库 $REPO_NAME 已存在，跳过创建"
        # else
        #     echo "仓库 $REPO_NAME 创建失败，HTTP 响应码：$CREATE_REPO_RESPONSE"
        #     continue
        # fi

        # Step 2: 添加远程仓库并推送代码
        cd "$dir" || continue

        REMOTE_URL="git@gitcode.com:$ORG_NAME/$REPO_NAME.git"
        git remote add gitcode "$REMOTE_URL" 2>/dev/null

        echo "推送代码到远程仓库：$REMOTE_URL"
        git push gitcode main --force
        if [ $? -eq 0 ]; then
            echo "仓库 $REPO_NAME 推送成功"
        else
            echo "仓库 $REPO_NAME 推送失败"
        fi

        # 返回上级目录
        cd ..
    else
        echo "目录 $dir 不是 Git 仓库，跳过"
    fi
done

echo "所有操作完成。"